/**
 * Copyright (c) 2021 SQLines
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef SETTINGS_HPP
#define SETTINGS_HPP

#include <map>
#include "QString"

namespace model {
    class Settings;
}

class model::Settings {
public:
    Settings() noexcept;

    QString operator[](const QString& key) const noexcept;
    QString& operator[](const QString& key) noexcept;

    void erase(const QString& key) noexcept;

private:
    void setDefaultSettings() noexcept;

private:
    std::map<QString, QString> settings;
};

#endif // SETTINGS_HPP
